#!/usr/bin/env bash
set -e # 这告诉bash一但有任何一个语句返回非真的值，则退出bash。

NAME=client
DAEMON=/usr/sbin/openvpn
CONFIG_DIR="$HOME"
PIDFILE="/run/openvpn.$NAME.pid"
STATUSFILE="/run/openvpn.$NAME.status"
DAEMONARG="--daemon ovpn-$NAME"
STATUSARG="--status $STATUSFILE"
OPTARGS=""

test -x $DAEMON || exit 0

start_vpn () {
	start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON -- $OPTARGS --writepid $PIDFILE $DAEMONARG $STATUSARG --cd $CONFIG_DIR --config $CONFIG_DIR/$NAME.ovpn < /dev/null || STATUS=1
}

stop_vpn () {
	start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON --retry 5
	if [ "$?" -eq 0 ]; then
		rm -f $PIDFILE
		rm -f $STATUSFILE 2> /dev/null
	else
		STATUS=1
	fi
}

case "$1" in
start)
	start_vpn
	echo "启动完成，操作码：${STATUS:-0}"
	;;
stop)
	stop_vpn
	echo "关闭完成，操作码：${STATUS:-0}"
	;;
restart)
	shift
	$0 stop ${@}
	$0 start ${@}
	;;
*)
	echo "Usage: $0 {start|stop|restart}" >&2
	STATUS=1
	;;
esac

exit ${STATUS:-0}
